package com.dkha.server.services;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dkha.common.modules.vo.face.ApiSearchFaceRectVO;
import com.dkha.common.modules.vo.search.SearchRequestVo;
import com.dkha.common.modules.vo.search.SearchResultVo;
import com.dkha.common.page.PageParam;
import com.dkha.server.modules.entities.Portrait;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * <p>
 * 人像表 服务类
 * </p>
 *
 * @author Spring
 * @since 2019-12-09
 */
public interface IPortraitService extends IService<Portrait> {
    /**
     * 人脸入库
     * @param multipartFile
     * @return
     */
    Portrait addPortrait(String libraryId,MultipartFile multipartFile) ;
    /**
     * 人脸检测
     * @param multipartFile
     * @return
     */
    List<ApiSearchFaceRectVO>  pictureDetection(MultipartFile multipartFile) throws Exception;
    /**
     * 布控图片人脸入库
     * @param multipartFile
     * @return
     */
    Portrait addPortraitPng(String libraryId,MultipartFile multipartFile) ;
    /**
     * 布控图片人脸入库（地址为base64的编码转url）
     * @param multipartFile
     * @return
     */
    Portrait addPortraitPngs(String libraryId,String multipartFile) ;


    /**
     * 人脸批量入库
     * @param files
     * @return
     */
    List<Portrait> addPortraits(String libraryId,MultipartFile[] files);
    /**
     * 修改人脸信息
     * @param portrait
     * @return
     */
    Portrait updatePortrait(Portrait portrait);

    /**
     *  删除人脸
     * @param portrait
     * @return
     */
    Long deletePortrait(Long portrait);

    /**
     *  批量删除人脸
     * @param portraitId
     * @return
     */
    List<Long> deletePortraits(List<Long> portraitId);

    /**
     * 人脸入库
     * @param pageParam
     * @return
     */
    Page<Portrait> queryPortrait(PageParam pageParam);

    /**
     * 人脸库检索----分页
     * @param searchRequestVo 人脸库检索请求Vo
     * @return
     */
    SearchResultVo libSearchPage(SearchRequestVo searchRequestVo);
}
